My personal programmer's library
This is a work in progress.
This is my personal library of programming books. I'm fortunate enough to have the means to acquire hard copies right now, so I'm methodically working through that process. There are, of course, other ways to ahem acquire them for those that are low on funds.
The titles in bold are volumes I feel encompass the "canon" of a core curriculum.
Computer science
Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman, Julie Sussman
A Programmer's Guide to Computer Science by Dr. William M Springer II
A Programmer's Guide to Computer Science Vol. 2 by Dr. William M Springer II
Computer Science: A Very Short Introduction by Subrata Dasgupta
Algorithms by Panos Louridas
Best practices
The Pragmatic Programmer by Andrew Hunt
A Friendly Introduction to Software Testing by Bill Laboon
Refactoring by Martin Fowler
Code Craft by Pete Goodliffe
Working Effectively with Legacy Code by Michael Feathers
Head First Agile by Andrew Stellman
Debug It!: Find, Repair, and Prevent Bugs in Your Code by Paul Butcher
Humane tech
Practical Web Inclusion and Accessibility by Ashley Firth
Don't Make Me Think, Revisited: A Common Sense Approach to Web Usability by Steve Krug
Accessibility Handbook: Making 508 Compliant Websites by Katie Cunningham
Engineering as Practice & Career
The Effective Engineer by Edmond Lau, Bret Taylor
The Nature of Software Development by Ron Jeffries
Programming Beyond Practices: Be More Than Just a Code Monkey by Gregory T Brown
Becoming a Better Programmer: A Handbook for People Who Care About Code by Pete Goodliffe
Being Geek: The Software Developer's Career Handbook by Michael Lopp
Software testing
Simplify Testing with React Testing Library by Scottie Crump
The Way of the Web Tester by Jonathan Rasmusson
Fifty Quick Ideas To Improve Your Tests by Gojko Adzic
End-to-End Web Testing with Cypress by Waweru Mwaura
Languages
JavaScript
Eloquent JavaScript by Marijn Haverbeke
JavaScript: The Definitive Guide by David Flanagan
Composing Software: An Exploration of Functional Programming and Object Composition in JavaScript by Eric Elliott
Golang
The Go Programming Language by Alan Donovan
Introducing Go: Build Reliable, Scalable Programs by Caleb Doxsey
Clojure
Miscellany
High Performance Browser Networking by Ilya Grigorik
Once Upon an Algorithm: How Stories Explain Computing by Martin Erwig
Best Practices of Spell Design by Jeremy Kubica
Computational Fairy Tales by Jeremy Kubica
Everything You Need to Ace Computer Science and Coding in One Big Fat Notebook by Workman Publishing
How the Internet Really Works: An Illustrated Guide to Protocols, Privacy, Censorship, and Governance by Article 19
Non-technical
History
Code: The Hidden Language of Computer Hardware and Software by Charles Petzold
Computing: A Concise History by Paul E. Ceruzzi
Endless Loop: The History of the BASIC Programming Language by Mark Jones Lorenzo
The Computer: A Very Short Introduction by Darrel Ince
Not directly tech, but helpful
Atomic Habits by James Clear
HBR's 10 Must Reads on Emotional Intelligence by Harvard Business Review
Miscellany
How to Make Sense of Any Mess: Information Architecture for Everybody by Abby Covert
A Civic Technologist's Practice Guide by Cyd Harrell
Reflections & Essays
Syntax & Sage: Reflections on Software and Nature
Life in Code by Ellen Ullman
Joel on Software by Joel Spolsky
More Joel on Software by Joel Spolsky
The Best Software Writing I by Joel Solsky, ed.
Geek Sublime by Vikram Chandra
The Mythical Man-Month: Essays on Software Engineering by Frederick Brooks Jr.
Older, outdated works
The Whole Internet User's Guide & Catalog by Ed Krol